/**
 * @Copyright ®2015 Sinosoft Co. Ltd. All rights reserved.<br/>
 * 项目名称 : 支付平台
 * 创建日期 : 2016年6月12日
 * 修改历史 : 
 *     1. [2016年6月12日]创建文件 by chihouliang
 */
package com.sinosoft.sinopay.apiservice.wechat.util;

import java.util.Random;
import java.util.UUID;

/**
 * 【生成随机字符串工具类】
 * @author liuyjsh@sinosoft.com.cn
 * @date 2016年10月8日 下午6:59:52 
 * @version V1.0
 */
public class RandomStringUtil {

	/**
	 * 获取指定长度字符串
	 * @Title:getRandomStringByLength
	 * @param length
	 * @return
	 */
	public static String getRandomStringByLength(int length) {//length表示生成字符串的长度
		String base = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		Random random = new Random();
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < length; i++) {
			int number = random.nextInt(base.length());
			sb.append(base.charAt(number));
		}
		return sb.toString();
	}
	
	
	/**
	 * 获取32位随机字符串，数字+大写字母
	 * @Title: getRandomString32 
	 * @Description: TODO
	 * @return
	 */
	public static String getRandomString32(){
		return getRandomStringByLength(32);
	}
	
	/**
	 * 自定义规则生成32位随机数
	 * @param rules
	 * @return
	 */
	public static String getUUIDByRules(String rules){
		int rpoint = 0;
		StringBuffer generateRandStr = new StringBuffer();
		Random rand = new Random();
		int length = 32;
		for(int i=0;i<length;i++){
			if(rules!=null){
				rpoint = rules.length();
				int randNum = rand.nextInt(rpoint);
				generateRandStr.append(rules.substring(randNum,randNum+1));
			}
		}
		return generateRandStr+"";
	}

	
	/** 
	 * 利用UUID生成32位随机数
	 * @return
	 */
	public static String getUUID(){
		String uuid = UUID.randomUUID().toString().trim().replace("-", "");
		return uuid;
	}
	
}